package com.xhorse.lockplatform.comm.util;

import java.io.*;

public class FileTransport {
	

	Integer regionId;
	
	public FileTransport(int regionId) {
		super();
		this.regionId = regionId;
	}

	public FileTransport() {
	}

	/**
	 * 递归复制遥控生成的文件夹
	 * @param src
	 * @param des
	 */
	public  void copy(String src, String des) {
		File srcFile = new File(src);
		File[] fileList = srcFile.listFiles();
		File desFile = new File(des);
		if (!desFile.exists()) {
			desFile.mkdirs();
		}
		for (File file : fileList) {
			if (file.isDirectory()) {
				if(file.getName().equals("image")){
					copy(file.getPath(), des + "\\" + file.getName());
				}
				if(file.getName().equals("binFile")){
					copy(file.getPath(), des + "\\" +regionId+"\\"+file.getName());
				}
				if(file.getName().equals("hexFile")){
					copy(file.getPath(), des + "\\" +regionId+"\\"+file.getName());
				}
				if(file.getName().equals("jsonFile")){
					copy(file.getPath(), des + "\\" +regionId+"\\"+file.getName());
				}
				if(file.getName().equals("brand")){
					copy(file.getPath(), des +"\\"+file.getName()+"Img");
				}
				if(file.getName().equals("key")){
					copy(file.getPath(), des +"\\"+file.getName()+"Img");
				}
			} else {
				fileCopy(file.getPath(), des + "\\" + file.getName());
			}
		}
		System.out.println("===============复制已完成=============");
	}

	/**
	 * 单个文件的复制操作
	 * @param src
	 * @param des
	 */
	private static void fileCopy(String src, String des) {
		try {
			FileInputStream fis = new FileInputStream(src);
			FileOutputStream fos = new FileOutputStream(des);
			int index = 0;
			byte[] buffer = new byte[1024 * 1024];
			while ((index = fis.read(buffer)) != -1) {
				fos.write(buffer, 0, index);
			}
			fos.close();
			fis.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 删除文件
	 * @param srcPath
	 * @return
	 */
	public boolean deleteFile(String srcPath){
			File file = new File(srcPath);
			if(file.isDirectory()){
				File[] list = file.listFiles();
				for(File temp:list){
					boolean flag = deleteFile(temp.getAbsolutePath());
					if(!flag){
						return false;
					}
				}
			}
				return file.delete();
	}
	
}
